#include "embalagenscontroller.h"
#include "dao/aqprodembalagemdao.h"
#include "dao/aqembalagemprodutodao.h"

EmbalagensController::EmbalagensController(QObject *parent) :
    QObject(parent)
{
}

QVariantList EmbalagensController::loadEmbalagensProduto(qulonglong produtoId) {
    QVariantList result = QVariantList();

    AQProdEmbalagemDAO prodEmbalagemDAO;

    GenericListModel *prodEmbalagensList = prodEmbalagemDAO.findAll(QString("ID_Produto = ").append(QString::number(produtoId)));

    if(prodEmbalagensList) {
        AQEmbalagemProdutoDAO embalagemProdutoDAO;

        QList<QObject *> prodEmbalagens = prodEmbalagensList->getEntries();
        for(int i=0; i<prodEmbalagens.size(); i++) {
            AQProdEmbalagem *prodEmbalagem = (AQProdEmbalagem *)prodEmbalagens.at(i);

            AQEmbalagemProduto *embalagem = embalagemProdutoDAO.findById(prodEmbalagem->ID_EmbalagemProduto());
            if(embalagem) {
                QVariantMap embalagemData;

                embalagemData.insert("id",QString::number(embalagem->mId()));
                embalagemData.insert("Descricao",embalagem->Descricao());
                embalagemData.insert("Unidade",embalagem->Unidade());
                embalagemData.insert("EAN13DUN14",embalagem->EAN13DUN14());

                result.append(embalagemData);
                delete embalagem;
            }
        }

        delete prodEmbalagensList;
    }

    return result;
}
